def is_possible_divide(hand, group_size):
    if len(hand) % group_size != 0:
        return False

    hand.sort()
    count_map = {}

    for card in hand:
        if card in count_map:
            count_map[card] += 1
        else:
            count_map[card] = 1

    for card in hand:
        if count_map[card] > 0:
            count_map[card] -= 1
            for num in range(card + 1, card + group_size):
                if num not in count_map or count_map[num] == 0:
                    return False
                count_map[num] -= 1

    return True
